import axios from 'axios'
import {Message} from 'element-ui'
import de from "element-ui/src/locale/lang/de";

const instance = axios.create({
    baseURL: 'http://localhost:8081',
    timeout: 1000 * 60
})

/*请求前执行*/
instance.interceptors.request.use(config => {
    return config;
}, error => {
    return Promise.reject(error);
});

/*响应前执行*/
instance.interceptors.response.use(res => {
    //下载文件响应体没有res.data.code 所以要排除文件类型
    if (res.data instanceof Blob) {
        return res;
    }else{
        if (res.data.code != 200) {
            Message.error(res.data.message || '网络请求错误');
            return Promise.reject(new Error('状态码:' + res.data.code + '  消息:' + res.data.message + '  原因:' + res.data.data));
        }
        return res.data;
    }

}, error => {
    let res = error.response;

    // 尝试将Blob响应体转换为JSON
    if (res.data instanceof Blob) {
        let readFile = new FileReader();
        let jsonData= null;
        readFile.onload = function () {
            // 在这里使用转换后的JSON数据
            jsonData = JSON.parse(readFile.result.toString());
            Message.error(jsonData.message);
            return Promise.reject(new Error('状态码:' + jsonData.code + "  消息:" + jsonData.message + "  原因:" + jsonData.data));
        };
        readFile.readAsText(res.data);
        return new Promise(()=>{});
    } else {
        let message = res.data.message || '网络请求错误!';
        Message.error(message);
        return Promise.reject(new Error('状态码:' + res.data.code + "  消息:" + res.data.message + "  原因:" + res.data.data));
    }

});

export default instance;